package fun.trackcam.source;

import java.util.List;

import javax.media.CaptureDeviceInfo;
import javax.media.format.RGBFormat;
import javax.media.format.VideoFormat;
import javax.media.protocol.DataSource;

public interface CameraDao {

	/**
	 * @param captureDeviceInfo
	 * @param format
	 * @return a datasource for captureDeviceInfo and format
	 */
	public abstract DataSource createDataSource(
			CaptureDeviceInfo captureDeviceInfo, VideoFormat videoFormat);

	/**
	 * @return List<CaptureDeviceInfo> list of all capture video format
	 *         avalaible
	 */
	public List<CaptureDeviceInfo> getAllCaptureVideoDevice();

	/**
	 * @param captureDeviceInfo
	 * @return List<RGBFormat> list of all RGB video format avalaible for
	 *         captureDeviceInfo
	 */
	public List<RGBFormat> getAllRGBFormat(CaptureDeviceInfo captureDeviceInfo);

}